package main

import "fmt"

// 声明变量
// Go语言中推荐驼峰式命名
// var name string
// var age int
// var isOk bool

// 批量声明变量
var (
	name string // ""
	age  int    // 0
	isOk bool   // false
)

func main() {
	name = "理想"
	age = 16
	isOk = true
	// Go语言中 非全局变量变量声明必须使用， 不使用就编译不过去
	fmt.Print(isOk)              // 在终端中输出要打印的内容  不会有换行
	fmt.Println()                // 快速打印一个空行
	fmt.Printf("name%s\n", name) // %s 是一个占位符 	使用name这个变量的值去替换占位符	// \n是换行符的意思
	fmt.Println(age)             // 打印完指定的内容后会自动加一个换行符
	// 声明变量同时赋值
	var s1 string = "王海滨"
	fmt.Println(s1)
	// 类型推导(根据值判断该值是什么类型)
	var s2 = "20"
	fmt.Println(s2)
	// 简短变量声明, 只能在函数里面用
	s3 := "哈哈哈"
	fmt.Print(s3)
	// s1 := "10"	// 同一个作用域中不能重复声明同名变量
	// 匿名变量不占命名空间，不会分配内存，所以匿名变量之间不存在重复声明
	// 注意：
	/*
	*函数外的每个语句都必须以关键字开始（var const func）
	*:= 不能用在函数外
	*_多用于占位，表示忽略值
	 */
}
